package com.bestcem.xm.member.entity.mongo;

import com.alibaba.fastjson.annotation.JSONField;
import com.bestcem.xm.member.entity.mysql.LabelValueId;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;
import java.util.List;

/**
 * @author ming.xue <ming.xue@idiaoyan.com>
 * @desc 联系人
 * @date 2021-07-21
 */
@Getter
@Setter
@ToString
public class Member extends BaseEntity {

    /**
     * 企业标识
     */
    private String orgId;

    /**
     * 系统编号（源自用户管理系统）
     */
    private String sysId;

    /**
     * 来源
     */
    private String source;

    /**
     * 头像url
     */
    private String avator;

    /**
     * 用户姓名
     */
    private String name;

    /**
     * 电子邮箱地址
     */
    private String email;

    /**
     * 手机号码
     */
    private String mobile;

    /**
     * 性别
     */
    private String gender;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 区域信息(省份、城市、区，源于第三方系统)，所属地区
     */
    private String region;

    /**
     * 所属门店，系统内部的门店
     */
    private String store;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 备注
     */
    private String content;

    /**
     * 微信unionId
     */
    private String unionId;

    /**
     * 微信OpenId
     */
    @JSONField(name = "openid")
    private String openId;

    /**
     * 微信appId
     */
    @JSONField(name = "appid")
    private String appId;

    /**
     * 支付宝用户标识
     */
    @JSONField(name = "alipay_user_id")
    private String alipayUserId;

    /**
     * 联系人编号
     */
    private String memberNo;

    /**
     * 地址信息
     */
    private List<String> address;

    /**
     * 员工编号
     */
    @JSONField(name = "employeeID")
    private String employeeId;

    /**
     * 雇佣状态
     */
    @JSONField(name = "employee_status")
    private Integer employeeStatus;

    /**
     * 联系人类型
     */
    @JSONField(name = "mtype")
    private Integer memberType;

    /**
     * 生日
     */
    private Date birthday;

    /**
     * 所属部门，机构联系人有此字段
     */
    private String department;

    /**
     * 职位，机构联系人有此字段
     */
    private String position;

    /**
     * 机构编号，即机构联系人中的客户编号
     */
    @JSONField(name = "institutID")
    private String instituteId;

    /**
     * 机构名称，机构联系人有此字段
     */
    @JSONField(name = "institut_name")
    private String instituteName;

    /**
     * 用户标识，内部联系人需要的字段
     */
    private String userId;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 标签值标识列表
     */
    @JSONField(name = "labels")
    private List<LabelValueId> labels;

    /**
     * 扩展字段信息
     */
    @JSONField(name = "field_val_list")
    private List<ExtendFieldValue> fieldValList;

    /**
     * 头像
     */
    private String avatar;
}